/*************************************************************************
    > File Name: 5.alarm-2.c
    > Author: Ykk
    > Mail: 3393579535@qq.com 
    > Created Time: 2023年04月23日 星期日 21时21分53秒
 ************************************************************************/

#include <stdio.h>
#include <signal.h>
#include <unistd.h>
#include <stdlib.h>

void alarm_handler(int sig) {
    printf("Time's up!\n");
}

int main() {
    struct sigaction sa;
    sa.sa_handler = alarm_handler;
    sigemptyset(&sa.sa_mask);
    sa.sa_flags = 0;

    if (sigaction(SIGALRM, &sa, NULL) == -1) {
        perror("sigaction");
        exit(1);
    }

    alarm(5);

    while (1) {
        printf("Waiting...\n");
        sleep(1);
    }

    return 0;
}
